package user;

import bean.Role;
import bean.UserInfo;

import java.util.List;
import java.util.Map;

/**
 * @classname:UserDao
 * @description:
 * @author: Mr.Z
 * @date: 2020/12/30 22:41
 * @version: 0.1
 * @since:1.8
 */
public interface UserDao {
    /**
     *
     * @param userInfo 添加新用户
     * @return  返回受影响行数
     */
    int addUsr(UserInfo userInfo) throws Exception;

    /**
     *
     * @param user 新增用户类
     * @return 新增用户id
     * @throws Exception
     */
    long addUserBackId(UserInfo user)throws Exception;

    /**
     * 删除指定Id的用户信息
     * @param id  传入要删除的Id
     * @return 返回受影响的记录数
     * @throws Exception
     */
    int deleteUserById(int id) throws Exception;

    /**
     * 查询单个用户
     * @param id  通过id查询
     * @return 返回一个用户类
     * @throws Exception
     */
    UserInfo selectUserOneById(int id) throws Exception;


    /**
     * 查询全部的用户信息
     * @return  用户集合
     * @throws Exception
     */
    List<UserInfo> selectUserAll() throws Exception;

    /**
     *
     * @param userInfo  修改信息后的用户信息
     * @return  返回受影响的行数
     * @throws Exception
     */

    int updateUser(UserInfo userInfo) throws Exception;

    /**
     * 多表关联查询
     * @param id  要查询uer的Id
     * @return      返回map 集合
     * @throws Exception
     */

    List<Map<String, Object>> selectRoleAndPer(int id) throws Exception;


    /**
     * 添加角色信息
     * @param roleId 新增角色id
     * @param pids 新增角色全权限
     * @return 受影响行记录
     * @throws Exception
     */
    int addRoleAndPer(int roleId,int[] pids)throws Exception;


    long addRole(Role role) throws Exception;


}
